Offset和resize在VBA中的用法

您所在的位置:网站首页 vba rangeoffset Offset和resize在VBA中的用法

Offset和resize在VBA中的用法

#Offset和resize在VBA中的用法| 来源: 网络整理| 查看: 265

Offset实际上是Excel的函数。VBA可以直接调用Excel中任何函数,但是有的时候语法会有些区别,OFFSET就是。

Offset函数实为定位函数。首先要找到中心点,如果以单元格A1为中心点,则A1的位置就是Offset(0,0)。

我想通过下面这张图片,大家可以很好的理解Offset

Sub ContentCopy() dim caa1,caa2 as string caa1 = Sheets("sheet1").Range("A1").Offset(0, 0) .value '将A1的值赋给变量Caa1 caa2= Sheets("sheet1").Range("A1").Offset(1, 0).value '将A2的值赋给变量Caa2 End Sub

resize属性的语法

Range.Resize(行数,列数)

它返回的是一个单元格对象,以单元格区域的第一个单元格(左上角)为起点,

同时向右向下扩展对应的行数和列数。

‘Range.Resize 属性 ‘调整指定区域的大小。返回 Range 对象,该对象代表调整后的区域。 ‘语法 ‘表达式.Resize(行数, 列数) ‘表达式 一个返回 Range 对象的表达式。 1 Sub test() 2 [a1].Resize(2, 3).Select 3 [a1].Resize(2).Select 4 [a1].Resize(, 3).Select 5 End Sub 注意:Resize是Range本身开始从"1"算起的,[a1].resize(1,1); 但是Offset是Range本身开始从"0"算起的,[a1].offset(0,0); 以上两行代码都返回a1这个区域

range("a1").Resize(5, 3).Select '相当于RANGE("A1:C5")

range("a1:c5").Resize(2, 2).Select '相当于range("A1:B2")

range("b5:d7").Resize(10, 10).Select '相当于range("b5:k14")

2、RESIZE的行、列参数均可省略,但不能同时省略。

省略的行、列和原单元格对象一致。

省略行:range("a3:b8").Resize(, 3).Select

行数与range("a3:b8")一致(不变)

省略列:range("a3:b8").Resize(4).Select,注意列参数省略是连逗号都省略了的。range("a3:b8").Resize(4,).Select '这种写法会出错。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3